home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1995 November
/
EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso
/
earcd
/
patch
/
ppak25_3.lha
/
Messages2
/
DocsPhonePak_2.4.ASCII.doc
next >
Wrap
Text File
|
1994-05-02
|
59KB
|
1,120 lines
PHONEPAK VFX 2.4
April 27, 1994
I. INTRODUCTION
This addendum to the PhonePak VFX manual describes the changes that have
been made since version 1.0. It is an expanded replacement of the
addendum that was originally shipped with PhonePak 2.0.
II. PHONEPAK
VFX Control Panel
Three buttons on the VFX Control Panel now perform an alternative
operation when either Alt key is pressed and held while clicking on the
appropriate button. For the Move button, the alternative action is to
move the files without making them "new" in the destination mailbox.
This is handy if you are simply performing "housekeeping" as opposed to
forwarding a message to another mailbox. For the New button, the
alternative action is to present a requester allowing you to make the
selected files new or old. For example, to quickly make all the new
files in a mailbox old, simply click New, then Alt-New, then select the
"Make Old" option from the requester. For the Play button, the
alternative action is to replay the current message. Formerly, you had
to activate the Pause button, then press the Play button in order to
replay the current message.
Pressing the Play button now causes PhonePak to go on to the next
message even when the Pause button is active.
The operations initiated by the Send and Receive buttons are now more
automatic. Formerly, clicking on either of these buttons while PhonePak
was onhook would result in an error message. Now, PhonePak will
automatically go offhook if necessary. In addition, when a fax send or
receive has finished, a requester will appear asking if you want
PhonePak to hang up.
Database
Two additional phone number fields have been added to PhonePak's
database section. Pre-2.0 databases may be loaded into PhonePak 2.0,
and the additional phone number fields can be used. However, the fields
will not have labels, so you might find it preferable to create a new
database, taking advantage of the new 4-character labels for the phone
number fields. You can then import the records from the old database
into the new one. If you do this, you will notice another new feature:
PhonePak asks if you wish to copy the QuickDial file from the old
database.
While we're on the subject of importing, an enhancement has been made to
text imports: When this option is selected, PhonePak will prompt you
for the field and record separator characters. In previous versions,
the linefeed character (ASCII 10) was used automatically to separate
both fields and records. This is also the default in version 2.0, but
an alternate character can be specified for each type of separator, such
as tab (9), comma (44), or space (32).
Fax Display Screen
The PhonePak program now multitasks internally when a fax is being
rendered, meaning that menus and gadgets, especially the Play button,
will remain active. Fax rendering speed has increased dramatically,
especially for 2D faxes. The on-screen appearance of fine mode 2D faxes
has been improved, and the type of fax being displayed (std/fine; 1D/2D)
is now indicated in the fax display screen's title bar.
When the fax display screen's window is active, pressing return is now
the keyboard equivalent of clicking the Play button on the VFX Control
Panel; pressing the spacebar is now the keyboard equivalent of clicking
the Pause button on the VFX Control Panel.
The Flip gadget in the fax display screen's title bar is now sticky; it
will remain in whatever state you choose as long as the screen remains
open, allowing you to easily view an inverted multi-page fax without
having to repeatedly click the gadget.
Operator
Although Operator is not used exclusively by the PhonePak program,
PhonePak provides the interface where most of the Operator strings are
entered, so enhancements to the language will be covered in this
section.
Each of LineMan's line handler processes deal with one particular line.
Therefore, transfer strings may act upon that line only. As a result,
the <Local>, <Seize>, and <Offhook> commands, when used in transfer
strings, now default to the appropriate line instead of automatically
using line 1. Specifying any other line as an argument to these
commands will result in an error.
Operator now supports pulse dialing via the <Tone 0> command. The short
form for this command is <T0>. To return to tone mode issue a <T>
command.
New Operator Commands
<Inquire [n]>
Wait n seconds (default 4) for intermittent fax tone (CNG) generated by
remote fax machines that wish to automatically transmit a fax.
Listening for the CNG tone prior to receiving a fax confirms that there
is a remote fax machine present. This command is used internally by
LineMan to implement the AUTOFAX feature.
<Receive filename>
Receive a fax using the given filename. If the file already exists and
is an IFF CAT file, the fax will be appended to the existing file. If
the file is not a CAT file, the command will fail. Files created by
this command and all files created by LineMan are CAT files.
Switchboard
PhonePak's Switchboard has gone through a major rework for version 2.0.
One of the most obvious changes is that the window is now sizable and
draggable, and it can be scrolled horizontally as well as vertically.
The blank mailbox icons are gone, and the remaining mailbox icons can be
grabbed like regular icons and moved to new locations in the window.
When the mouse button is released, the mailbox icon "snaps" to the
nearest grid position, making it simple to create an attractive layout
that mimics the underlying system routing.
PhonePak may now be started in hi-res interlace mode (640x400). To use
this mode, either add a Tool Type of INTERLACE to PhonePak's icon, or
use -i as a command line option. The primary reason for this option is
to allow you to drag the Switchboard to the bottom half of the screen.
In version 2 you can even leave the Switchboard open! Simply
double-click on a mailbox icon to open the mailbox, instead of using the
old shift-click method. The ability to double-click made one other
change necessary: When clicking on a mailbox icon to mark the mailbox
in or out, you must now hold the Alt key down. The help window for the
Switchboard has been updated to show these new mouse/keystroke
operations, in case you have trouble remembering. Finally, if you want
the Switchboard to be opened on startup, simply select Project/Save
Configuration from PhonePak's main menu while the Switchboard is open.
If you want to leave the Switchboard window open, but prefer not to use
interlace mode, try clicking on the Switchboard's new Zoom gadget. This
will shrink the window and move it so that it covers the database area,
which may be acceptable if you don't have too many mailboxes.
Once you have arranged the mailboxes and the Switchboard's size,
location, and scroll position to your liking, you can select
Window/Snapshot from the menu bar to save the entire layout. Selecting
Window/Unsnapshot from the menu bar will cause PhonePak to "forget"
these settings, so the window will open full-sized and the mailboxes
will be listed in alphabetical order the next time you open the
Switchboard. The System/Set Local Access Code menu item has been
removed from the Switchboard's menu bar; the local access code is now
part of a line's configuration and can be set via LineMan's Line
Configuration window.
Message Forwarding
Many users have requested message forwarding, the ability to call a
pager or take some other action upon receiving a message in a mailbox,
and PhonePak 2.0 has it! All you have to do is add a special
forwarding-type item to the scheduler, and it will be executed when a
message is received, instead of being executed at a particular time.
The simplest example of using this feature is to have PhonePak call your
pager when it receives a message. Open your mailbox, make sure that no
phone numbers are selected, and select Scheduler/Add/Forwarding from the
menu bar. A requester will appear, asking for the group name, with
"Forwarding" as the default. Erase this text (Right Amiga-x) and click
OK (We'll explain why later). A second requester will appear, into
which you should enter an Operator string that will call your pager
(e.g., <!><O><D>555-1234<C><W20><H>). That's all there is to it! Now,
whenever the new message count of your mailbox increases, a forwarding
liability flag will be set, and LineMan will execute the forwarding
item. The forwarding liability flag is cleared when the item is
successfully executed or when the new message count of your mailbox
decreases.
In version 1, if you tried to add an item to the schedule without having
selected a phone number, you would get an error message. As you can see
in the above example, you now get a requester into which you may enter a
phone number "on the fly." This works for normal schedule items as well
as for forwarding items. The other interesting thing about the above
example is that we asked you to erase the group name. Did you find this
odd? We did so because otherwise, LineMan would have executed the new
ARexx script named Forwarding.PPak that has been installed in your REXX:
drawer! That's right, any schedule item can now call an ARexx script,
supplying the item's Operator string as an argument to the script! Of
course, the Operator string could actually contain whatever information
you want to pass to the script, since you control what the script will
do.
A more sophisticated application of message forwarding involves using
the Forwarding.PPak script described above. This script is designed to
call the "raw" phone number passed to it as an argument (e.g.,
<!>555-1234) and initiate remote access, just as if you had called in
and entered #51 from the Message Edit menu while in your mailbox. The
Forwarding.PPak script will only forward messages if the mailbox is
marked "out" via PhonePak's Switchboard. It is therefore not necessary
to delete the forwarding item if you are marked "in"; the script will
become dormant automatically. When you add your forwarding item (each
mailbox can have only one), the default group name is set to
"Forwarding," making it easy to use the Forwarding.PPak script.
Although it is not necessary to specify the ".PPak" extension in the
group name, doing so makes it clear that the group name is in fact an
ARexx script. If you use a group name such as "NightService", ARexx
will look for a script named "NightService" or "NightService.PPak",
first in the current directory (your mailbox), then in the directory
assigned to REXX:. See the "ARexx Control of LineMan" section below for
more information on ARexx scripts to be called by LineMan from the
scheduler. Lastly, if you need to change the group name of a schedule
item or group of items, a Regroup menu item has been added to the
Scheduler menu.
Other PhonePak Changes
Setting print scaling to 0 via the Fax/Print Scaling menu enables
automatic scaling, which will shrink the printed image as much as 50% in
order to fit it on a single page. Changes to this setting can be made
permanent by selecting Project/Save Configuration from the menu bar.
Note: For best results when printing faxes, make sure your Prefs
PrinterGfx settings are correct. If Limit Type is set to Ignore, the
various settings in your Printer Prefs (Margins, Pitch, Paper Length,
and Spacing) will affect graphic dumps such as fax printouts. If Limit
Type is set to Bounded, then the Width and Height settings in PrinterGfx
Prefs control graphic dumps. However, PhonePak ignores the height
limits of both the above Limit Types for page-oriented printers such as
HP_LaserJet. For continuous-paper printers such as EpsonQ, height
limits are only relevant if PhonePak's automatic scaling option
(described above) is in use. Limit Types of Absolute, Pixels, and
Multiply are not recommended for use with PhonePak. For most users,
setting Limit Type to Bounded, Width to 85, and Height to 110 will yield
optimum results.
Whenever PhonePak has been taken offhook by the PhonePak program (e.g.
by selecting Dialer/Hook from the menu bar), the alphabetic and numeric
keys on the keyboard can be pressed to generate DTMF tones. This allows
you to easily dial phone numbers that are represented as words
(555-FILM) and to navigate interactive voice response systems like
PhonePak without having to pick up your telephone receiver. A few
special keys on the keyboard should be noted: Q generates a DTMF 7; Z
generates a DTMF 9; Return and Enter generate a DTMF #; and Escape
generates a DTMF *.
Files in the message list may now be drag-selected by clicking and
holding the left mouse button and sliding the mouse pointer over the
files that are to be selected/deselected. Also, the message list now
scrolls in realtime as the slider is manipulated.
There are two new menu items on the Mailbox menu, Sort/Alphabetically
and Sort/Chronologically. These menu items allow you to choose how the
message list is sorted, and the selected menu item is saved as part of
PhonePak's configuration (select Project/Save Configuration from the
menu bar to save PhonePak's configuration). Lastly, all of PhonePak's
menus now remain active during audio playback, although playback will be
stopped automatically for those menu selections that are incompatible
with playback.
III. LINEMAN
Interface Changes
The first change most users will notice (under Workbench 2.0) is the
presence of a new gadget in LineMan's title bar. This is the New
Messages gadget, and the number that appears in the gadget indicates how
many mailboxes have new messages, eliminating the need for the asterisk
that would appear in version 1 when a message had been received.
Clicking on the New Messages gadget calls up a list of all mailboxes
that have new messages, along with the mailboxes' new message counts.
If you click on one of these mailbox names, LineMan will automatically
open that mailbox in PhonePak and select the new messages, launching the
PhonePak program if necessary. LineMan has two new Tool Types available
to support this feature: PPAKARGS, which specifies PhonePak's command
line startup options (e.g., "PPAKARGS=-i -dDemo"); and PPAKPATH, which
specifies the path to PhonePak (e.g., "PPAKPATH=Work:PhonePak"). The
default path to PhonePak is PPak:.
While we're on the subject of Tool Types, LineMan's zoom position now
respects the LEFTEDGE/TOPEDGE Tool Types, for those of you who used
these Tool Types only to find that LineMan jumped to the upper left
corner of the screen upon clicking its Zoom gadget. Also, there is now
a FAILEDTRANSFER Tool Type to allow the default Operator string that is
dialed when a call transfer fails (<F><W><F><W20>) to be modified.
There is no command line equivalent for this Tool Type.
LineMan now has Distinctive Ring (IdentaRing) support. Distinctive Ring
is a service available from many phone companies that allows your phone
line to have several different phone numbers. Each phone number has a
unique ring pattern so that you can tell which number the caller dialed.
Note that this is not the same as having a second line, because there
can only be one call in progress at a time. There are several potential
advantages to using LineMan in combination with Distinctive Ring
service, including: Eliminating the need for LineMan's unavoidably
awkward AUTOFAX feature by having a phone number dedicated to fax-only
calls (see Fax Only below); and having business/personal or roommate
A/roommate B phone numbers, each of which can have a completely
different line configuration.
LineMan's configuration window has changed substantially in order to
support Distinctive Ring service. There is now a setup gadget that
allows you to cycle through three completely separate line
configurations or setups, each of which will be used in response to a
different ring pattern. The MAIN setup will be used whenever the ring
pattern is not recognized, and it is the only setup you should use if
you do not have Distinctive Ring service. Each setup can have its own
LINE NAME, but only the main setup's line name will be displayed in the
LINE gadget in LineMan's main window. Each setup also has its own
answer count; the ANS gadget in LineMan's main window shows the sum of
the setups' answer counts. The answer counts can be reset individually
via the line configuration window, or all at once via LineMan's main
window. All of these answer counts are now saved to disk, meaning that
they will survive a reboot. The LOCAL gadget contains the setup's local
access code. Local access code was formerly part of a System's
definition and was accessed from the System menu on the Switchboard. In
version 2 LineMan will only honor the local access code for the first
five seconds after the local phone is picked up. This helps eliminate
the possibility of inadvertently initiating local access mode. The RING
PATTERN is configured via a set of cycle gadgets which allow you to
specify a ring having up to three segments, each of which can be short
or long. Due to possible variations in the way your local phone company
implements Distinctive Ring service, it is a good idea to set all your
RINGS to at least two. That way, if a partial ring comes in, LineMan
will still answer correctly since it uses the setup identified by the
last complete ring. The SAVE gadget should only be clicked when you
have finished configuring all of the setups -- it saves than all at
once. Likewise, the CANCEL gadget abandons any changes you have made to
any of the setups. The COPY CONFIGURATION gadget has been eliminated as
a result of the changes to LineMan's configuration window.
Although LineMan's default ring pattern analysis will work properly for
most users, if LineMan fails to recognize ring patterns correctly, there
are two new Tool Types available which modify the ring pattern analysis:
SHORTRINGLIMIT, which specifies the maximum duration of a short ring in
milliseconds; and RINGRESETTIME, which specifies the amount of time in
milliseconds that LineMan should wait after receiving a ring message
before it decides that all ring segments have been received and the ring
pattern should be analyzed. In other words, this number should be total
duration of the longest ring segment plus any silence that precedes it
plus a little bit of slop. The silence preceding the first ring segment
doesn't count. PPAKMONITOR now reports the duration of rings to assist
you in setting these Tool Types. Note that neither of these Tool Types
will have any effect unless at least one of the alternate setups is
active (a ring pattern and a system name is required to make a setup
active). This has been done so that, in the absence of an alternate
setup, LineMan will answer immediately after the end of a ring (as most
users have become accustomed to) instead of waiting for RINGRESETTIME.
Also, in version 2 LineMan's minimum ring duration has been lowered in
order to recognize ring segments as short as 250 milliseconds. Note,
however, that unless at least one of the alternate setups is active,
each ring segment will be considered one ring.
The AUTOFAX gadget now has a FAX ONLY setting. When a line is
configured this way, LineMan will answer calls with a fax tone and
automatically receive resulting faxes into the initial mailbox.
Obviously, this severely limits LineMan's capabilities, but allows you
to receive faxes from callers who have trouble getting their fax
machines to issue the CNG tones that make AUTOFAX work. For the same
reason, business users of PhonePak might want to set LineMan to FAX ONLY
mode after hours to reduce problems with overnight fax reception. Note:
When AUTOFAX is turned on, LineMan listens to the line for about four
seconds after answering for the intermittent CNG tone that will often be
issued by remote fax machines. Note that we said "often," not "always."
This is a problem for more than a few PhonePak users, and indeed is a
problem for owners of many types of automatic fax switches, too. Often,
a fax machine will only issue CNG tones when it is making a call in
automatic mode, i.e., as a result of entering the phone number and
pressing start; as opposed to pressing the hook (speaker, hands free,
etc.) button, dialing the number manually, and pressing start when the
call is answered. It all depends on how the fax machine is designed.
The bottom line is, if you have trouble receiving a particular fax via
AUTOFAX, tell the caller to press #8 when LineMan answers, or
temporarily set LineMan to FAX ONLY mode and try again. Of course, if
the PhonePak program is running and LineMan has not yet answered, you
could also receive the fax manually using the Receive button on the VFX
Control Panel.
Call Handling
During the course of an incoming call, LineMan uses a number of system
messages, and in version 1, these messages had to be located in the
system's initial mailbox. For version 2, LineMan will look in up to
three different places for each system message. First it will look in
current mailbox; then in the initial mailbox for the system; and finally
in the directory assigned to SYSMSG:. This procedure increases
versatility in several ways. For example, you can now override a system
message only while in a particular mailbox by placing a special system
message in that mailbox. Or, if you have several systems, you can
conserve disk space by combining all the system messages into one
directory and assigning SYSMSG: to that directory.
In the event that a required system message cannot be found, or if any
other fatal error is encountered, LineMan is much friendlier than in
version 1. First, it plays a distinctive alarm tone at the caller
before hanging up. Then, instead of disabling the line, a detailed
error message will be printed to LineMan's console window (an AUTOCON
window specification has been added to LineMan's icon that will open a
window in case of error output). Alternatively, if LineMan is started
from the command line, you can redirect this error output to a file via
AmigaDOS.
LineMan's interaction with callers has been improved in other ways, too.
Whenever a caller enters DTMF (Touch Tone) digits, the entry can now be
completed by pressing the pound key which causes LineMan to process the
entry immediately instead of waiting for the interdigit timeout.
Formerly, the pound key would override the digits, and LineMan would
play an option menu. Beyond improving performance for "power callers,"
this change means that commands can be stacked by separating them with
the pound key. Another handy feature for power callers is that pressing
1 (or 1#) during playback of the Override.sys message will abort
playback and perform the pending call transfer. Lastly, the beep at the
end of a recording has been shortened to increase the chances of the
caller hearing the Message Edit menu before hanging up. There is a new
system message, Goodbye.sys, that will be played before LineMan hangs up
if it detects a DTMF * or hits a normal dead end such as a lack of
caller input or a mailbox with 0 message length and no default route.
This system message is not required.
LineMan now has support for temporary greetings. Temporary greetings
allow you to easily set up a special greeting, such as when you go to
lunch or will be away for a few days, and then revert to your normal
greeting upon returning. This feature is implemented as follows:
Whenever LineMan needs to play a mailbox greeting, a message in the
mailbox having an extension of .tgrt (Temporary GReeTing) will override
the mailbox's regular greeting. Two options have been added to the
Message Editing menu to support this feature: 71, which makes the newly
recorded message into a temporary greeting; and 73, which deletes a
mailbox's temporary greeting. Both of these options require password
entry. Of course, a temporary greeting can also be created using the
PhonePak interface simply by adding the .tgrt extension to a message's
filename.
There are two new Remote Update codes to support PhonePak's new message
forwarding capability: 40, which disables forwarding; and 41, which
enables forwarding.
Getting the Most out of Remote Access
The ability to manipulate messages remotely using LineMan's Remote
Access menu has been greatly expanded in version 2. Although the
available commands are printed on the PhonePak wallet cards, in
LineMan's help window, and in the PhonePak manual, no tutorial has been
provided until now, causing many users to run into problems when using
Remote Access. In this section, we will describe the new features as we
explain how to use the Remote Access system.
Let's assume that you have created a mailbox for your messages, and that
you must press 1 from the initial mailbox to access your mailbox. If
you want to retrieve your new messages remotely, the first step is
always to go to your mailbox. In our example, you must therefore press
1, which will start the greeting to your mailbox. While the greeting is
playing, press #51 to request new message playback. Pressing the # key
summons the Message Edit menu, but you do not have to wait for it to
begin playing before pressing 51. This command, as well as 52 (play all
messages), 80 (mark new faxes for retrieval), and 66 (go to Remote
Update menu) have been added to the Message Edit menu in version 2 in
order to streamline the remote access process. All of these codes
require entry of the mailbox password in order to prevent unauthorized
use.
Now that you have requested new message playback, LineMan will use the
new vocabulary system to inform you of the number of new messages in
your mailbox. You will then be prompted for your password. If you have
no new messages, you can simply ignore this password prompt, and you
will be returned to your mailbox's greeting. This feature can help save
time and keystrokes, especially if you need to check several mailboxes
during a phone call.
For our example, we will assume that there are new messages. Once you
enter the mailbox password, LineMan will begin to play back your new
messages in chronological order. Once the messages begin to play, you
can take advantage of PhonePak 2.0's ability to rewind and fast forward
messages. Simply press 1 to rewind or 2 to fast forward. LineMan will
jump backwards or forwards approximately six seconds each time the
appropriate key is pressed.
Note: 1 and 2 are the only numeric codes that are enabled when you are
reviewing messages. In order to perform any other action (delete,
replay, mark for retrieval), YOU MUST FIRST PRESS # TO SUMMON THE REMOTE
ACCESS MENU (many users have erroneously attempted to enter a Remote
Access code during message playback). Once you have selected an option
from the Remote Access menu, message playback will resume. In other
words, if you are listening to a message you want to delete, press #3.
LineMan will delete the message and then go on to the next one.
During Remote Access, a new voice message will be marked old only after
playback of the message has completed. This means that if you skip to
the next message (by pressing #2), the message will remain new. There
is one exception to this rule in PhonePak 2.0: If a message contains a
fax, it will remain new until it is successfully viewed, retrieved, or
explicitly made old with the #70 command. Let's say you are in a hotel
room, and there is a fax machine in the lobby. You call your PhonePak,
listen to your new messages, and discover that there are new faxes, too.
With PhonePak 2.0, all you have to do to retrieve these faxes is go to
the lobby, call PhonePak from the fax machine, enter your mailbox, and
press #80 during the greeting. This marks ALL of the new faxes in your
mailbox for retrieval. After your entry is confirmed with a double
beep, press *. When LineMan detects a *, it checks to see if there are
any marked faxes, and if there are, it will attempt to send them before
ending the call. If you run into a problem while receiving, don't
worry: Faxes aren't marked old until they are successfully retrieved.
Simply call back in and repeat the procedure! Also, you can mark faxes
from as many mailboxes as you wish (Pressing 0 from the Remote Access
menu takes you back to the initial greeting, from which you can get to
other mailboxes), and retrieve them all at the end of the call .
In version 1, it was not possible to find out when a particular message
was received. This made it difficult or impossible to identify faxes
that didn't have an attached voice message. With PhonePak 2.0, you can
ask LineMan to play the time and datestamp of the message you are
listening to by pressing #7. We made this an on-demand feature so that
you wouldn't have to wait through the time and datestamp for every
message, since this information is not always important. When you
request timestamp playback, LineMan will fulfill your request, then
resume playback of the message from the beginning. You can then press 2
repeatedly to advance to the point where you requested the timestamp, or
you can press #2 to go to the next message.
IV. Miscellaneous
The speed of fax encoding via both PPakFax and the PhonePak program's
import facility has been substantially improved.
PPakFax now respects the paper format setting in Preferences, instead of
only generating U.S. Letter-sized pages (the PhonePak VFX manual
incorrectly stated that PPakFax could also generate U.S. Legal-sized
pages).
There are two new Tool Types available for the PPakFax program:
CODING=1D|2D (default=1D), which allows you to specify 2D (MR) fax
compression as an alternative to the 1D (MH) compression used in the
original version of PPakFax (for a discussion of the two formats, see
page 110 of the PhonePak manual); and FILENAME=filename, which creates
the fax using the given filename instead of the normal time and date
stamp. The filename given should NOT include a path specification. If
a file with the given name already exists, it will be overwritten.
Lastly, a military time value in the format HH:MM can optionally be
specified as the argument to the SCHEDULE Tool Type.
Some users ran into problems sending faxes they had received with
PhonePak to other fax machines. This typically occurred when they
received the fax in 2D mode and the machine they wanted to send to was
only capable of 1D coding. Faxes compressed with 2D coding also take
much longer to display, and this could be rather aggravating on
unaccelerated machines. Therefore, there is a new program in the
PPakTools drawer called Fax_1D_Only that can be used on systems running
Workbench 2.0. Double-clicking on the Fax_1D_Only icon creates a
PhonePak/FaxCoding environment variable and sets it to 1D. With this
environment variable set, all fax reception will be limited to 1D
coding. The system may be restored to its normal state by changing the
environment variable to 2D or by deleting it from the ENV: and ENVARC:
drawers.
Another potential problem with sending faxes can occur if you are
sending a multi-page fax consisting of both fine and standard mode
pages. Some fax machines are unable to change resolutions between
pages, so you will either have to send the fine pages separately from
the standard pages or convert all the pages to the same resolution.
PhonePak can receive mixed resolution faxes with no problem.
Since the original release of PhonePak VFX, we have documented several
cases where users' problems were tracked down to an improperly grounded
computer. These problems included background noise in recordings made
from the phone line and difficulty with fax communications. In
addition, an ungrounded system prevents PhonePak's interference limiting
circuitry from functioning properly, potentially in violation of FCC
regulations. We would therefore like to stress the importance of
plugging your Amiga into a properly grounded outlet.
Another source of background hum or buzz in recordings made from the
phone line may have to do with the condition of the phone line itself.
If recordings made in local mode are free of noise, there may be an
imbalance in the phone line that can be fixed by your local phone
company. If you experience noisy recordings even in local mode, try
moving the PhonePak board away from other boards installed in your
Amiga, or reverse the order of the boards. You might also make sure
that the phone lines and the PhonePak board are kept away from
potentially strong sources of interference, such as computer monitors.
V. AREXX CONTROL OF LINEMAN
Overview
Beginning with version 2.0 of PhonePak VFX, each line handler
sub-process of the LineMan program has an ARexx command port. The name
of the port consists of the word "LINEMAN" followed by an extension
representing the line number (e.g., the first PhonePak board installed
in your system can be controlled by sending commands to the port named
"LINEMAN.1"). At certain times when a line handler will be busy for an
extended period, such as during fax communication, it closes its ARexx
port since it will be unable to process ARexx commands. This prevents
your ARexx scripts from "hanging", but it means that you should not
blindly assume that a given port is present.
There are two modes in which LineMan can receive commands. The first,
known as "normal" mode, occurs when commands are issued and LineMan is
not otherwise occupied with the given line (i.e., processing a call).
The second, known as "callback" mode, occurs when your program receives
a message from LineMan, but before it replies to the message. LineMan
can be set up to send a message to your program at one or more points by
using the ARexx Host "hooks" available when you are configuring a system
via PhonePak's Switchboard. In callback mode, the program receiving the
message from LineMan is the only one that may issue commands to LineMan.
Also, some commands, such as REMOTEACCESS and SETLINE, are blocked when
LineMan is in callback mode. Consult the command reference below for
further information.
The possibility exists that multiple programs will try to send normal
mode commands to a LineMan port simultaneously, so two mechanisms are
provided to prevent collisions in addition to the callback mode
restriction described above. First, whenever LineMan receives an ARexx
command to go offhook, it will only accept subsequent commands for that
line from the program that issued the offhook command. This remains
true until the line is returned to an onhook state. Second, a program
can send a SESSION command to LineMan. If this command executes
successfully, LineMan will refuse ARexx commands from any other program
until the first program issues a SESSION OFF command. This allows a
program to control a line even if that line is onhook. None of these
restrictions, however, prevent LineMan from attempting to answer an
incoming call. If necessary, this can be handled manually by using the
SETLINE command. Technical Note: LineMan identifies programs that send
ARexx commands by their task addresses. If your program terminates with
a line offhook or a SESSION command still in effect, it is very possible
that a new task could have the same address as your terminated task. Of
course, it is not a good idea to terminate your program when either of
the above conditions is true. This note simply serves to explain why it
is occasionally possible to exit a script with an open SESSION, and then
successfully execute another script, apparently bypassing the SESSION
lock. This is also a warning that you should not count on this behavior
to manifest itself in any consistent way. Rest assured that LineMan's
SESSION/offhook protocol, which prevents your script from being
interrupted, works properly.
Callback Hooks
A second form of callback hook has been added to LineMan for version
2.0. It is similar to the hook you can set up by selecting Route/Set
ARexx Route Host from the PhonePak Switchboard's menu bar. This second
hook is known as a menu host, and it is set up by selecting System/Set
ARexx Menu Host from the Switchboard's menu bar.
When a menu host has been configured, LineMan will send a message
containing information about the caller's input to the designated menu
host port at the conclusion of playback of each audio menu (Message
Edit, Remote Access, etc.). If the reply to the message has an RC of 0
and no result string, LineMan will process the caller's selection
normally. If the script returns an RC of 0 along with a result string,
LineMan will process the result string as if the caller had entered it.
If the script returns an RC of 1, LineMan will double-beep and replay
the menu, indicating that the script performed some action successfully.
Finally, if the script returns an RC of 2, LineMan will play Error.sys,
and then replay the menu, indicating that the caller's entry is not
allowed.
The format of the message that LineMan sends is identical to the ROUTE
message it sends to an ARexx route host hook, except that the word ROUTE
is replaced with MESSAGEEDIT, REMOTEACCESS, FAXXESS, or REMOTEUPDATE.
The ARexx menu host can be used for such things as blocking certain
built-in menu codes, remapping built-in codes to a different number, or
adding new codes.
There is also a special message that will be sent to ARexx Menu Hosts at
the end of a call. The format of this message is: ENDCALL n code,
where n represents the line number, and code is one of the following:
NOLINE - Lineman is onhook (probably hit an <H> in a transfer string)
PANIC - Lineman hit a fatal error and is about to play panic tones
NOCALLER- Lost control of caller due to local pickup or remote hangup
STAR - Lineman detected DTMF * and is about to play Goodbye.sys
DEADEND - Lineman hit a normal dead end and is about to play Goodbye.sys
The ENDCALL message is useful for interactive scripts that need to reset
or perform special processing when a call ends. You should always reply
to a PANIC message immediately, as this means LineMan has encountered a
serious error. If you receive a STAR or DEADEND message, the caller is
probably still on the line.
If you wish to inhibit the action that LineMan will take when you reply
to the ENDCALL message, you can force the call to end by executing an
OPERATOR <H> command prior to replying. Whenever you reply, the RC
should normally be 0. The only other valid RC is 1, which causes
LineMan to double-beep before proceeding. You should not supply a
result string unless you wish to force marked faxes to be transmitted,
in which case the result string should be "*".
If an ARexx route host replies to a message from LineMan with an RC of 0
and no secondary result code, LineMan will now play Error.sys and
re-enter the current mailbox instead of ending the call. This is a
fairly common sequence of events that formerly had to be handled by your
script. Of course, you can still end the call by returning a non-zero
RC.
Whenever you add an ARexx route or menu host, a requester will appear
asking if you wish to append a line number extension to the port name.
This capability is critical in a multi-line environment if your script
does not process a message instantly. For example, let's say you have
written a script that implements a fax on demand system, and it takes
control of the call if the caller presses 8 during the initial mailbox
greeting. Assuming you have set up an ARexx route host in your initial
mailbox called FAXONDEMAND and that you have answered "yes" to the
"Append line number extension?" requester, you would then run two
separate copies of your ARexx script: one that opened a port named
FAXONDEMAND.1 and one that opened a port named FAXONDEMAND.2. The first
script would only receive messages from line 1, and the second would
only receive messages from line 2, allowing both lines to be active
simultaneously.
Script-Controlled Schedule Items
As described in the Message Forwarding section above, an ARexx script
can be specified in a schedule item's group name, and LineMan will call
the script using the Operator string as an argument instead of executing
the Operator string directly. Obviously, since you control what the
ARexx script will do, the Operator string can actually consist of
whatever is meaningful to your script. It could even be completely
blank if your script is self-contained.
The information you supply upon exiting your script allows LineMan to
determine the disposition of the schedule item. If your script executes
successfully, simply terminate with an exit or exit 0 instruction, and
LineMan will consider the schedule item completed. If you run into
problems, things get a bit more complicated. An error code less than
zero means that you encountered a fatal error; LineMan will not attempt
to execute your script again. LineMan will interpret an error code that
is greater than zero as the number of minutes that should elapse before
the script is attempted again; this is considered to be a non-fatal
error. For both fatal and non-fatal errors, you might wish to supply
additional information to be displayed in PhonePak's schedule listing.
To do this, simply include a message up to 15 characters long along with
your error code, e.g., exit "10 'line busy' ".
Commands
All commands, command keywords, and mailbox names must be specified in
upper case. If another ARexx session is in progress, the return code
will be set to 98. If LineMan is busy, the return code will be set to
99. If LineMan does not recognize a command, the return code will be
set to 100.
Note: Many of the commands described below are used in the example
ARexx scripts included with version 2. These scripts perform a number
of useful functions. For further information, refer to the scripts
themselves, which have been installed in your REXX: drawer and have an
extension of ".ppak".
Name: ADJNEWCOUNT
Format ADJNEWCOUNT <MAILBOX> [<delta>]
Template: ADJNEWCOUNT "MAILBOX/A,DELTA"
Purpose: To adjust a mailbox's new message count.
RESULT: The resulting new message count.
RC: 1 Mailbox not found (make sure mailbox argument is
upper case)
Example: ADJNEWCOUNT MASTER -1
Comments:
The PhonePak system keeps track of the number of new messages in a
mailbox. One of the uses of this variable is to determine which
mailboxes to highlight on PhonePak's Switchboard display when it is in
mailbox status mode. The new message count is verified whenever a
mailbox is opened in the PhonePak program: any file in the mailbox with
a filenote of "New" is considered to be a new file. PhonePak
automatically manages the new message counts for all internal
operations. However, you must manually adjust a mailbox's new message
count if you use ARexx to record a message or receive a fax, even though
the filenote will automatically be set to "New". In addition, if you
move files into or out of a mailbox using AmigaDOS, you should adjust
newcounts and/or filenotes as necessary.
Name: ANSWER
Format: ANSWER
Purpose: To go offhook when a line is ringing.
RC: -3 Procedure error (line isn't ringing?)
4 Line not available (line has already been answered?)
Comments:
This command should be used when it is your intention to process an
incoming call. This is the only ARexx command that LineMan accepts when
a line is ringing. Likewise, the command will fail if the line is not
ringing. The purpose of this command is to prevent a script from
attempting to place an outgoing call when a line is ringing. Note that
a line is considered to be ringing both during the ring itself as well
as during the silent period between rings. This command is not
available from callback mode.
Name: CHANGEDIR
Format: CHANGEDIR <DIRECTORY>
Template: CHANGEDIR "DIRECTORY/A"
Purpose: To change a line handler's current directory.
RC: -2 I/O Error (Unable to lock given directory)
Comments:
This command is typically used in ARexx scripts that are called by
the scheduler. Although the ARexx script's current directory is
automatically changed to the mailbox that owns the schedule item, the
script must manually set a line's current directory prior to issuing any
commands that may cause the line to look for files in the current
directory (e.g., OPERATOR).
Name: INQUIRE
Format: INQUIRE [HANGUP][FAXLIST [<number>]][CURRENTMSG]
Template: INQUIRE "HANGUP/S, FAXLIST/K, CURRENTMSG/K"
Purpose: To retrieve internal information from LineMan.
Comments:
The possibility exists, especially when in normal mode, that a
remote hangup, local hangup, or local pickup could occur during the
processing of a call at a time other than when you are executing a
PLAYBACK or a RECORD command. You should use the INQUIRE HANGUP command
periodically to make sure that you do not miss these call-terminating
events. If one of these events has occurred, RC will be 1. Otherwise,
RC will be 0. A typical time to use this command would be at the
conclusion of some processing during which the caller is expected to
wait. Executing this command causes a line's internal hangup flag to be
reset, so you should execute this command at the beginning of your call
in order to initialize the flag. If the INQUIRE command is given by
itself, HANGUP is the default argument.
The second form of this command, INQUIRE FAXLIST n, allows you to
extract the full filenames of faxes marked via either the Faxxess or
Remote Access menus, where n is the ordinal number of the filename you
want to extract. The default is the first fax on the list. The
filename is returned in the result string. If the requested item does
not exist, RC will be 1.
The third form of this command, INQUIRE CURRENTMSG, can be used in
callback mode after receiving an ARexx menu host message if you want to
manipulate the current voice/fax message in some way. The current
message on the Message Editing menu is the message just recorded; the
current message on the Remote Access menu is the message that was just
played.
Name: LAUNCH
Format: LAUNCH [<MAILBOX>]
Purpose: To process a call beginning with the given mailbox. If
a mailbox is not specified, the initial mailbox will be
used.
RC: -3 Procedure error
-2 I/O error
-1 Syntax error
1 Resource error
Example: LAUNCH MASTER
Comments:
This command uses the system currently assigned to the line, but
allows you to start at a point other than the initial mailbox. The
command will not return until the end of the call. This command can
cause LineMan to process an outgoing call, or to start a voicemail
system after a line has been answered manually. This command is not
available from callback mode.
Name: OPERATOR
Format: OPERATOR <commands>
Purpose: To provide access to PhonePak's Operator language.
RC: -3 Procedure Error
-2 I/O Error
-1 Syntax Error
1 Resource Error
2 Local Pickup
4 Line not Available
5 Call Progress: No Dialtone
6 Call Progress: No Answer
7 Fax not Detected
8 Call Progress: Busy Signal
9 Quit command
Example: OPERATOR <O><D>5551212<C>
Comments:
If you use the <Receive filename> command to receive a fax into a
mailbox, you should use the ADJNEWCOUNT command to increment that
mailbox's new message count. The filenote of the fax file will
automatically be set to "New". If the file specified already exists and
was created by LineMan, the fax will be appended to the end of the file.
This allows you to create VFX messages that combine voice and fax.
Name: PLAYBACK
Format: PLAYBACK <filename> [<interdigit>][<timeout>]
Template: PLAYBACK "FILENAME/A,INTERDIGIT,TIMEOUT"
Purpose: To play a message and capture DTMF tones.
RESULT: DTMF digits captured.
RC: 1 File not Found
2 I/O or Resource Error
3 Remote Hangup/Local Hangup/Local Pickup Detected
4 DTMF * Detected
5 DTMF # Detected (only possible if no DTMF digits
detected)
6 LineMan Close Gadget Detected - LineMan is terminating
Example: PLAYBACK TESTFILE 2 3
Comments:
This command will play the given message file down the phone line.
If the caller begins to enter DTMF tones, playback will cease and the
tones will be captured. Up to sixteen tones can be captured in this
manner. The interdigit argument specifies how long LineMan should wait
for the next DTMF tone once a DTMF tone has been detected. If a small
number, such as 2 or 3, is used for this argument, the caller must enter
digits without any substantial delay between them. However, if the
caller must enter many digits, such as a credit card number, it might be
better to supply a larger value, such as 10, as the interdigit argument.
In this case, you should instruct the caller to press the pound key (#)
when all the digits have been entered. Once a DTMF tone has been
detected, the function of the pound key is to abort the interdigit
timer. When used with a large value, the interdigit timer provides a
fail-safe function should the caller fail to press the pound key. The
other numeric argument in this command, the timeout value, represents
the silent period after the end of the message during which this command
should wait for an initial DTMF tone. Providing this additional time,
typically 2 or 3 seconds, allows the caller to think about the message
that has just been played before responding.
Name: RECORD
Format: RECORD <filename><duration>[NOCUTOFF][CUTOFF=<n>]
[COMPRESS][NOCOMPRESS]
Template: RECORD "FILENAME/A,DURATION/A,NOCUTOFF/S,CUTOFF=/K,
COMPRESS/S,NOCOMPRESS/S"
Purpose: To record a message.
RC: 2 I/O or Resource Error
3 Remote Hangup/Local Hangup/Local Pickup Detected
5 DTMF # Detected
6 LineMan Close Gadget Detected - LineMan is terminating
Example: RECORD work:testfile 60
Comments:
Records a new message with the given filename. If the file already
exists, it will be overwritten. Normally, a recording will terminate
after about 7 seconds of silence. Silence is detected by a special
algorithm that attempts to discriminate valid data from background
noise. Use the NOCUTOFF switch to force the recording procedure to ride
through any extended silent passages. Alternatively, use the CUTOFF
keyword to specify the number of consecutive blocks of silence that must
occur before the recording terminates. Each block is about 1.7 seconds
in duration. The COMPRESS and NOCOMPRESS switches are mutually
exclusive; they are used to override the default compression setting in
the line's configuration. If the message you record is to be stored in
a mailbox, you should use the ADJNEWCOUNT command to increment the new
message count for that mailbox. The filenote of message files created
with this command are automatically set to "New".
Name: REMOTEACCESS
Format: REMOTEACCESS [<MAILBOX>][<code>]
Purpose: To process a call beginning with Remote Access in a given
mailbox. If no mailbox is specified, the initial mailbox
is used.
RC: -3 Procedure Error
-2 I/O Error
-1 Syntax Error
1 Resource Error
Example: REMOTEACCESS MASTER 51
Comments:
This command is similar to the LAUNCH command, but instead of
starting with the given mailbox's greeting, LineMan will get the mailbox
password from the caller (if the mailbox is password protected), and
initiate the Remote Access procedure. This command will not return
until the end of the call, and it is not available from callback mode.
Note that the caller is not limited to Remote Access functions, but can
go back to the initial mailbox of the system assigned to the line and
move around at will, just as if this were a normal incoming call. This
command simply provides a different starting point. The <code> argument
allows you to specify an initial selection from the Remote Access menu
as if the caller had entered it.
Name: SESSION
Format: SESSION [OFF]
Purpose: To toggle session status
Comments:
Whenever you use ARexx to go offhook, a LineMan ARexx port will not
accept commands from any other program until the line returns to an
onhook state. There are times, however, when you might want exclusive
control over one of LineMan's ARexx ports even when a line is onhook.
The SESSION command provides this capability. Once you have
successfully executed a SESSION command, you have exclusive access to
that LineMan ARexx port until you execute a SESSION OFF command. Note
that if the line is offhook when you execute the SESSION OFF command,
you retain exclusive access until the line is returned to an onhook
state (i.e., exclusive access while offhook cannot be overridden).
Name: SETINITIALMB
Format: SETINITIALMB [<MAILBOX>]
Purpose: To set the initial mailbox.
RC: 1 - Mailbox not found
Comments:
This command allows you to temporarily set a different initial
mailbox, which is useful if you wish to modify the action of a 0
keypress from any of LineMan's menus. If no mailbox is specified, the
initial mailbox will be restored to its original value. This command is
only valid in callback mode, and the initial mailbox will automatically
be restored to its original value at the end of the call.
Name: SETLINE
Format: SETLINE [SYSNAME=<name>][RINGS=<n>]
[AUTOFAX=ON|OFF|FAXONLY][MONITOR=ON|OFF]
[COMPRESS=ON|OFF][SEL=ON|OFF][RESETANS]
Template: SETLINE "SYSNAME=/K,RINGS=/K,AUTOFAX=/K,
MONITOR=/K,COMPRESS=/K,SEL=/K,RESETANS/S"
Purpose: To adjust line settings and save them to disk.
RESULT: The resulting line settings
RC: 1 - System not found (remainder of settings will be
accepted)
Example: SETLINE 'SYSNAME=Sys 1' RINGS=3 AUTOFAX
Comments:
Any settings that are not specified will be left alone. ON is the
default value for all parameters that accept a value of ON or OFF. The
SYSNAME specification, but not the SYSNAME keyword, is case insensitive.
The settings available in this command are equivalent to the settings
available from LineMan's Configuration window. This command is not
available from callback mode.
Name: SETMAILBOX
Format: SETMAILBOX [<MAILBOX>][MSGLNG=<n>][IN|OUT]
Template: SETMAILBOX "MAILBOX, MSGLNG=/K, IN/S, OUT/S"
Purpose: To adjust mailbox settings and save them to disk. If
this command is given without any arguments, information
about the initial mailbox will be returned.
RESULT: Path to mailbox (including mailbox name), message length
(in seconds), and whether mailbox is marked in or out.
RC: -1 Syntax error (mailbox name too long?)
1 Mailbox not found (make sure mailbox argument is upper
case)
Example: SETMAILBOX MASTER (result: 'Work:Master' 30 IN)
Comments:
If you are processing a call manually, you can use this command to
inquire about PhonePak's mailbox data so that your program does not need
to store mailbox information separately.
Name: SETXFER
Format: SETXFER [<MAILBOX>][<Operator string>]
Template: SETXFER "MAILBOX, STRING"
Purpose: To adjust a mailbox's transfer string and save it to disk.
If this command is given without any arguments, the
initial mailbox's transfer string will be returned.
RESULT: Mailbox's transfer string.
RC: -1 Syntax error (mailbox name too long?)
1 Mailbox not found (make sure mailbox argument is upper
case)
Example: SETXFER MASTER ''
Comments:
Keeping this command separate from SETMAILBOX allows you to easily
pass the result back to LineMan as an OPERATOR command.
Name: SPEAK
Format: SPEAK <Command> <Argument> [FULL]
Template: SPEAK "COMMAND/A, ARGUMENT/A, FULL/S"
Command Argument
DATE Days since 1/1/78
TIME Minutes since midnight
NUMBER Signed 32-bit number
BITE System sound bite number 0-n
USER User sound bite number 0-31
Purpose: To access the vocabulary system
Comments:
The DATE and TIME arguments are specified in a format that is easy
for ARexx to create. Use the FULL switch to include the year during
date playback. Refer to the chart that follows for a list of the system
sound bites. LineMan will keep track of 32 user sound bites. User
sound bites are created by appending IFF 8SVX files to the
Vocabulary.sys file. Note that LineMan creates an index to the
Vocabulary.sys file on startup, so you should quit LineMan before making
any modifications to this file.
System Sound Bites:
0 - 19 0 - 19
20 - 90 20 - 27
AM 28
PM 29
SUN - SAT 30 - 36
JAN - DEC 37 - 48
HUNDRED 49
THOUSAND 50
MILLION 51
BILLION 52
NEGATIVE 53
DOLLARS 54
CENTS 55
NEWMESSAGES 56
BYTES 57
V. AREXX CONTROL OF PHONEPAK
The PRINT command now accepts an optional path and filename of the fax
to print, making it easier to implement automatic or Remote Access-based
fax printing. The following commands have beed added to PhonePak's
ARexx interface:
Name: DELETEMB
Format: DELETEMB <MAILBOX>
Purpose: To delete a mailbox.
RESULT: The number of mailboxes remaining.
RC: -2 I/O Error (Can't write s:PhonePak.config)
1 Resource Error (Access to shared data area denied)
2 Mailbox not found
Comments:
If there are any files in the mailbox directory when this command is
executed, they will be left alone and the directory will not be deleted.
Name: NEWMB
Format: NEWMB <PATH><MAILBOX>[<MESSAGE LENGTH>][<PASSWORD>]
[<TRANSFER STRING>]
Purpose: To create a new mailbox.
RESULT: The total number of mailboxes.
RC: -2 I/O error
-1 Syntax error
1 Resource error
2 Mailbox name already exists
Example: 'NEWMB Ram Freddie 60 1234 <F><D>21'
Comments:
The requirements for this command's arguments are the same as for
the arguments in the New Mailbox requester. The mailbox will not be
opened automatically as it is when a mailbox is created via the PhonePak
interface.